package com.aiti.lulian.dto;

import cn.hutool.core.date.DateTime;
import com.aiti.base.core.base.dto.PageDto;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class CardBusinessContractDto extends PageDto {
    private String baseId;
    @NotBlank(message="合同标题不能为空" ,groups = CardBusinessContractInsert.class)
    private String baseName;
    @NotBlank(message="关联客户不能为空" ,groups = CardBusinessContractInsert.class)
    private String customerId;
    @NotBlank(message="关联商机不能为空")
    private String communicateId;
    @NotNull(message="合同总金额不能为空" ,groups = CardBusinessContractInsert.class)
    private BigDecimal totalPrice;
    @JsonFormat(pattern = "yyyy-MM-dd")
    @NotNull(message="签约日期不能为空" ,groups = CardBusinessContractInsert.class)
    private Date signDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date beginDate;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endDate;
    private String enterpriseId;
    private String status;
    private String receivePaymentFlag;
    private String renewFlag;

    private String baseCreateBy;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date baseCreateTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date baseUpdateTime;
    private String baseUpdateBy;
    private String baseCreateName;

    private String customerName;
    private String communicateName;
    private String miniProgramVersion;
    private String deptId;
    private boolean enterpriseAdmin;
    private boolean systemAdmin;
    private String roleIds;
    private String deptPermission;
    private String directorId;
    private String directorName;
    private List<String> deptList;

    private BigDecimal receivedAmount;
    private BigDecimal outstandingAmount;
    private String type;
    private String paymentMethod;
    private String ourSigner;
    private String clientSigner;
    private String attachment;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date nextFollowUpTime;
    private String remark;
    private String deptName;

    private boolean directorFlag;
    private boolean collaboratorFlag;

    private List<String> idList;
    private String userId;
    private String field;
    private String fieldValue;

    private MultipartFile file;
    //是否覆盖，0为不覆盖，1为覆盖
    private String overrideFlag;

    private String dateFilterType;

    private BigDecimal minTotalPrice;

    private BigDecimal maxTotalPrice;
    private String filterDeptId;
    private String filterDirectorId;
    private List<String> filterDeptIdList;

}

